const { DataTypes } = require('sequelize')
const seq = require('../utils/seq')
const moment = require('moment')

/**
 *收藏id:id uuid
  收藏标题：name string
  收藏网址：url string
  收藏网站logo：logo string
  仓库地址：repository string
  收藏标签：tag 可以有多个，参考csdn的发布文章标签做法 string
  用户id：uid 用户表外键 uuid
  收藏类别：tid 收藏类别外键 uuid 语言文档和规范/可视化工具等，参考csdn的文章分类专栏
  创建时间：ctime string
  更新时间：mtime string
  备注：remark string
 */

module.exports = seq.define('collect', {
  id: {
    type: DataTypes.UUID,
    primaryKey: true,
    allowNull: false,
    defaultValue: DataTypes.UUIDV4,
    comment: '收藏id'
  },
  name: {
    type: DataTypes.STRING,
    allowNull: false,
    comment: '收藏标题'
  },
  url: {
    type: DataTypes.STRING,
    allowNull: false,
    comment: '收藏网址'
  },
  logo: {
    type: DataTypes.STRING,
    allowNull: false,
    comment: '收藏网站logo'
  },
  repository: {
    type: DataTypes.STRING,
    allowNull: true,
    defaultValue: '',
    comment: '仓库地址'
  },
  tag: {
    type: DataTypes.STRING,
    allowNull: true,
    defaultValue: '',
    comment: '收藏标签：使用,分隔'
  },
  uid: {
    type: DataTypes.UUID,
    allowNull: false,
    comment: '用户表外键'
  },
  tid: {
    type: DataTypes.UUID,
    allowNull: false,
    comment: '收藏类别表外键'
  },
  ctime: {
    type: DataTypes.STRING,
    defaultValue: moment().format('YYYY-MM-DD HH:mm:ss'),
    comment: '创建时间'
  },
  mtime: {
    type: DataTypes.STRING,
    defaultValue: moment().format('YYYY-MM-DD HH:mm:ss'),
    comment: '更改时间'
  },
  remark: {
    type: DataTypes.TEXT,
    comment: '备注'
  }
})